﻿#ifndef GENERAL_H
#define GENERAL_H


#include <cglobals.h>
#include <QString>
#include <QFileInfo>
#include <QDebug>
#include <QLabel>
#include <QDir>

//#pragma execution_character_set("utf-8")

bool isFileExist(QString fullpath);                                                                                                             // 检查文件是否存在
QString hexToBin(QString bytes);                                                                                                                // 将16进制数据转2进制数据
void display(const struct _format_settings* const pFormat);                                                                                     // 显示
QString toBigEndian(const QString str);                                                                                                         // 小端转大端
void clearcontextList(QVector<PDATA_CONTEXT>** pQList);                                                                                        // 清空struct _context类型的QList
//QString fullByteToString(QString data, PDATA_CONTEXT context, int byte_len, QVector<struct _enumerated*>* enum_list);                          // 满字节解析
/*int fullByteToDecValue(QString data, PDATA_CONTEXT context, int byte_len); */                                                                  // 满字节转数值
QString getEnum(QVector<struct _enumerated*>* enumlist, PDATA_CONTEXT in_data, int value);                                                     // 获取枚举值
//QString bytesToDecInt(QByteArray ba, int byte_len);                                                                                             // 满字节字符串INT值
void setLabelFont(QLabel* pLabel, QFont font);
void deleteStructContext(PDATA_CONTEXT pStruct);                                                                                                       // 释放结构体指针CONTEXT及其嵌套的指针
QString mkMutiDir(const QString path);
QByteArray intToByte(int i);
void deleteStruct_check_infos(struct _check_infos* ptr);
void deleteStruct_value(struct _value* ptr);
void deleteStruct_enumerated(struct _enumerated* ptr);
void deleteStruct_computation(struct _computation* ptr);
void deleteStruct_position(struct _position* ptr);
void deleteStruct_range(struct _range* ptr);
void deleteStruct_display(struct _display* ptr);
void deleteStruct_field(struct _field* ptr);
void deleteStruct_frame(struct _frame* ptr);
void deleteStruct_body(struct _body* ptr);
void deleteStruct_format_settings(struct _format_settings* ptr);
void deleteStruct_tool_bar_data(struct _tool_bar_data* ptr);
void deleteStruct_context(PDATA_CONTEXT ptr);
void deleteStruct_page_context(struct _page_context* ptr);
QString getDisplayString(STRVALUE value, PDATA_CONTEXT context, QVector<struct _enumerated*>* enum_list);
qint32 getDrawValue(STRVALUE value, PDATA_CONTEXT context);
// QString strToDecString(QString str);



#endif // GENERAL_H
